home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
011-020
/
amok11
/
r.o.m.
/
m2sources
/
myremember.def
< prev
next >
Wrap
Text File
|
1993-11-04
|
2KB
|
45 lines
DEFINITION MODULE MyRemember;
(*
Created: 1987 by
Stefan Salewski
Stolper Weg 3
2160 Stade West-Germany
Tel: 04141/61130
Note: compiled with AMIGA Modula-2 System by AMSoft from 5.5.88
This Module may be freely copied. But please
leave my name in. Thanks....Stefan
*)
FROM SYSTEM IMPORT ADDRESS;
TYPE
RememberNodePtr=POINTER TO RememberNode;
RememberNode=RECORD
previous:RememberNodePtr;
memSize:LONGINT;
adr:ADDRESS;
END;
PROCEDURE AllocRemember(VAR remKey:RememberNodePtr;VAR adr:ADDRESS;
size:LONGINT);
(*
AllocRemember ersetzt die entsprechnende Funktion von Intuition,
welche bei mir manchmal einen Absturz des Rechners verursachte.
Beim erstem Aufruf muss remKey den Wert NIL haben. Danach darf
remKey nicht mehr geaendert werden. Die Prozedur liefert beliebig oft
einen Speicherbereich der Groesse size an der Addresse adr .
Der Vorteil gegenueber ALLOCATE und DEALLOCATE ist, dass saemmtliche
Speicherbereiche mit nur einem Aufruf von FreeRemember wieder
freigegeben werden koennen.
*)
PROCEDURE FreeRemember(VAR remKey:RememberNodePtr);
(* Gibt alle durch AllocRemember reservierten Speicherbereiche wieder
frei und setzt remKey auf den Wert NIL. Da AllocRemember die
Funktion ALLOCATE benutzt, wird beim Programmende oder bei einem
Abbruch der Speicher vom Laufzeitsystem wieder freigegeben.
*)
END MyRemember.def